//
//  WBBaseViewController.swift
//  XtWeiBo
//
//  Created by 徐腾 on 2017/7/18.
//  Copyright © 2017年 徐腾. All rights reserved.
//

import UIKit

class WBBaseViewController: UIViewController {

    lazy var navigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: UIScreen.cz_screenWidth(), height: 64))
    
    // tableView
    var tableView: UITableView?
    
    // 上下拉刷新控件
    var refreshControl: UIRefreshControl?
    
    // 自定义导航条目  -- 以后设置导航条目都使用 navItem
    lazy var navItem = UINavigationItem()
    
    // 重写title didSet 方法
    override var title: String? {
        didSet {
            navItem.title = title
        }
    }
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        setupUI()
        
        // 加载数据
        loadData()
        
        // 取消自动缩进 因为如果隐藏了导航栏 会自动缩进 20
        automaticallyAdjustsScrollViewInsets = false
    }
    
    func loadData() {
        
    }
    
}


// MARK: - 设置界面
extension WBBaseViewController {
    
    func setupUI() {
        
        // 设置 NavigationBar
        setupNavigationBar()
        
        setupTableView()
    }
    
    private func setupTableView() {
        
        
        tableView = UITableView(frame: view.bounds, style: .plain)
        
        // 将tableView 插入到 navigationBar 下面
        view.insertSubview(tableView!, belowSubview: navigationBar)
        
        // 设置代理和数据源
        tableView?.delegate = self
        tableView?.dataSource = self
        
        // 设置内容缩进
        tableView?.contentInset = UIEdgeInsets(
            top: navigationBar.bounds.height,
            left: 0,
            bottom: tabBarController?.tabBar.bounds.height ?? 49,
            right: 0)
        
        // 添加刷新控件
        // 1> 创建  refreshControl 控件
        refreshControl = UIRefreshControl()
        // 2> 添加到视图上
        tableView?.addSubview(refreshControl!)
        // 3> 添加上下拉刷新的事件
        refreshControl?.addTarget(self, action: #selector(loadData), for: .valueChanged)
        
    }
    
    
    private func setupNavigationBar() {
        
        // 自定义navigationBar
        view.addSubview(navigationBar)
        
        // 将item设置给bar
        navigationBar.items = [navItem]
        // 设置bar的渲染颜色，不然导航条会有很亮眼的颜色
        navigationBar.barTintColor = UIColor.cz_color(withHex: 0xf6f6f6)
        // 设置bar的title的颜色
        navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.darkGray]
    }
    
}


// MARK: - UITableViewDelegate,UITableViewDataSource
extension WBBaseViewController: UITableViewDelegate,UITableViewDataSource {
    
    // 父类不做任何实现
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        return UITableViewCell()
    }
    
}



